<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
// 利用正则表达式，把 “我…我我…喜欢欢欢…编编程程程…” ，转换成 “我喜欢编程” ；
// console.log((/我?./g).exec("我…我我…喜欢欢欢…编编程程程…"));
console.log("我…我我…喜欢欢欢…编编程程程…".replace(/我…我我…喜欢欢欢…编编程程程…/g,"我喜欢编程"));
// 匹配Email地址(163 qq outlook 126) -->匹配任意格式的邮箱"
console.log(/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.exec("1665966989.@qqcom"));
// input:<>这是h1标签<>  output:     <h1></h1> 
// console.log("<>这是h1标签<>".replace(/<>/g,"<h1>"));
    console.log("<>这是h1标签<>".match(/<>/ig));
   
// 匹配2022年11月16日11:01:18  output : 2022.11.16 11:01:18  RegExp.$1  replace
console.log("2022年11月16日11:01:18".replace(/月|年|日/g,".")); 

console.log("---------");
// console.log(/^[1-9]\d{5,11}/.exec('02345685'));
        // console.log(/{}/.exec('4'));

        // console.log(/(ab)(12)/.exec('ab12'));

        //2022-11-16
        // console.log(/(\d{4})-(\d{2})-(\d{2})/.exec('2022-11-16'));
        // console.log(RegExp.$1);
        // console.log(RegExp.$2);
        // console.log(RegExp.$3);
        
        // console.log(/(\d{4})-(\d{2})-(\d{2})/.exec('2023-12-26'));

        //()
        //使用replace分组,捕获
        //引用: \1：引用子表达式的内容
        // console.log(/(aab)\1{4}/.exec('aabaabaabaabaab'));

        //反捕获:?::将捕获到的子表达式隐藏
        // console.log(/(?:aabc)(ccab)/.exec('aabcccabaabcccab'));

        //  |(or)
        // 文件名由字母、数字、下划线构成，不可以以数字开头，后缀为.zip/rar/gz  
        // console.log(/[^\d]*\.zip|rar|gz/.exec('zip.zip'));
        

        //0 - 99  9
        // 0-9 10-99
        // \d|[1-9][\d]
        //自左向右匹配，一旦匹配上 就不再回头
        // console.log(/[1-9][\d]|\d/.exec('9'));


        //0-255
        //0-9 \d
        //10-99 [1-9]\d
        //100-199 1\d\d
        //200-249 2[0-4]\d
        //250-255 25[0-5]

        //日期

        //单词边界:\b
        // console.log(/e\b/.exec('eapples'));

        //中文名字：三个汉字、中间必须是小或晓
        // console.log(/([\u4e00-\u9fa5])[小晓]([\u4e00-\u9fa5])/.exec('黄小薇'));


        //str.replace()

        // /g  /i
    //    console.log( '1a,2a,3a'.replace(/a/g,'b'));
       console.log( '1a,2a,3a,1A'.match(/1a/ig));

    // console.log(/^world/m.exec('hello\nworld'));;
    //hello
    //world


    //环视
    //?=:紧跟着  ?!:不紧跟着     ?:-->反捕获  ??--> 非贪婪{0,1}

    //查b (由c紧跟着)
    // console.log(/b(?=c)/.exec('abcbd'));

    //查a (后面跟的不是b)
    // console.log(/a(?!b)/.exec('abca'));
</script>
</body>
</html>